#include <stdio.h>
typedef void (*pfunc_t)(int *);
void print_cb(int *p_val) {
	printf("%d ", *p_val);
}
void neg_cb(int *p_val) {
	*p_val = 0 - *p_val;
}
void for_each(int *p_val, int size, pfunc_t p_func) {
	int num = 0;
	for (num = 0; num < size; num++) {
		p_func(p_val + num);
	}
}
int main() {
	int arr[] = {1, 2, 3, 4, 5};
	for_each(arr, 5, print_cb);
	printf("\n");
	for_each(arr, 5, neg_cb);
	for_each(arr, 5, print_cb);
	printf("\n");
	return 0;
}
